<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Produto extends CI_Controller {

	/* Layout utilizado pela pagina. */
	public $layout = 'default_admin';

	/* Titulo da Pagina. */
	public $title = CLIENTE;

	/* Menu do sistema*/
	public $menuTopo = '';

	/* Menu do sistema*/
	public $menuLateral = '';

	/* Caminho do pão do sistema */
	public $caminhoPao = '';

	/* css utilizado pela pagina. */
	public $css = array('admin/bootstrap', 'admin/animate', 'admin/style', 'plugins/waitMe/waitMe' );

	/* Js utilizado pela pagina. */
	public $js = array('plugins/jquery/jquery-2.1.4', 'admin/bootstrap', 'plugins/metisMenu/jquery.metisMenu', 'plugins/slimscroll/jquery.slimscroll.min', 'admin/principal', 'plugins/pace/pace.min', 'plugins/jquery-cookie/jquery.cookie', 'plugins/waitMe/waitMe');

	private $classe;

	/**
	 * Método construtor executado quando chamado a classe
	 * @author Rodrigo Valt <rodrigo.valt@sigma.com.br>
	 * @since 28/07/2015 16:48:23
	 */
	public function __construct()
	{
		parent::__construct();
		//Verifica se o usuário está logado
		usuarioLogado($this->session->userdata('logged'));

		$this->load->model('Marca_Model', 'marca');
		$this->load->model('Produto_Model', 'produto');
		$this->load->model('Hist_Produto_Model', 'histProduto');

		$this->classe = trim(strtolower(get_class($this)));

		//Valida permissões do usuário
		$this->permissao_lib->validaUsuarioPermissaoAcessarModulo($this->classe);

		//Montando menu dinâmico
		$this->load->library('Menu_Lib', 'menu_lib');
		$this->menuTopo = $this->menu_lib->menuTopo();
		$this->menuLateral = $this->menu_lib->menuLateral($this->classe);
	}

	/**
	 * Método responsável por iniciar a classe
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function index()	{
		try {
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, null);
		
			array_push($this->js, 'plugins/select2/select2.min', 'plugins/iCheck/icheck', 'plugins/dataTables/jquery.dataTables', 'plugins/dataTables/dataTables.bootstrap', 'plugins/dataTables/dataTables.responsive', 'admin/produto/pesquisar_produto');
			array_push($this->css, 'plugins/select2/select2', 'plugins/iCheck/custom', 'plugins/dataTables/dataTables.bootstrap', 'plugins/dataTables/dataTables.responsive');
			
			$listaMarca = $this->marca->listarMarcaAtivas();
			
			$html = '<option></option>';
				
			foreach ($listaMarca as $row){
					
				$html .= '<option value="'.$row->idMarca.'">'.$row->descricao.'</option>';
			}
				
			$data = null;
			$data["comboMarca"] = $html;
			
			$this->load->view('admin/produto/pesquisar_produto', $data);
				
		}catch (Exception $e){
			echo ($e->getMessage());
		}

	}

	/**
	 * Método responsável por realizar a pesquisa
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function pesquisar(){
		try {
				
			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
			
			$html = "";
			
			$descricao = trim($this->input->post('descricao'));
			$idMarca = trim($this->input->post('marca'));
			
			$situacao = trim($this->input->post('situacao'));
			$situacao = empty($situacao) ? "A" : $situacao;
				
			$retorno = $this->produto->pesquisar($descricao, $idMarca, $situacao);
			
			if (!empty($retorno)){
			
				$html .= '	<table class="table table-bordered table-striped table-hover table-heading table-datatable" id="tabela_resultado">
								<thead class="head-table">
									<tr>
										<th>Exibir</th>
										<th>Descrição</th>
										<th>Marca</th>
										<th>Valor</th>
										<th>Quantidade</th>
										<th>Alterar</th>';
				
				if ($situacao === "A"){
					$html .= '<th>Inativar</th>';
				}else{
					$html .= '<th>Reativar</th>';
				}
										
				$html .= '		    </tr>
								</thead>
								<tbody>';
			
				foreach ($retorno as $row){
					
					$histProduto = $this->histProduto->obterUltimoHistProduto($row->idProduto);
					
					$valor = "R$ ".str_replace(".", ",", $histProduto->valor);
					
					$html .= '<tr>
								<td><i class="fa fa-file-o icone-pesquisa" onclick="telaExibir(\''.encrypt(trim($row->idProduto)).'\');" style="cursor: pointer;"></i></td>
								<td>'.$row->descricao.'</td>
								<td>'.$row->descMarca.'</td>
								<td>'.$valor.'</td>
								<td>'.$row->quantidade.'</td>';
						
					if ($situacao === "A"){
						$html .= '<td><i class="fa fa-edit icone-pesquisa" onclick="telaAlterar(\''.encrypt(trim($row->idProduto)).'\');" style="cursor: pointer;"></i></td>';
						$html .= '<td><i class="fa fa-trash-o icone-pesquisa" onclick="mostraModal(\''.encrypt(trim($row->idProduto)).'\', \''.$row->descricao.'\', \'I\');" style="cursor: pointer;"></i></td>';
					}else{
						$html .= '<td><i class="fa fa-edit icone-pesquisa" data-toggle="tooltip" data-placement="bottom" data-original-title="Registro está inativo!" style="cursor: pointer;"></i></td>';
						$html .= '<td><i class="fa fa-unlock icone-pesquisa" onclick="mostraModal(\''.encrypt(trim($row->idProduto)).'\', \''.$row->descricao.'\', \'R\');" style="cursor: pointer;"></i></td>';
					}
			
					$html .='</tr>';
				}
			
				$html .=    '</tbody>
						  </table>';
			
				$retornoJson = true;
			
			}else{
				//Não encontrou resultados
				$retornoJson = false;
				$tipoMensagem = "alert-info";
				$mensagem = "Sua pesquisa não retornou resultado!";
			}
			
			$json = null;
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			$json['html'] = $html; 
			
			echo json_encode($json);

		}catch (Exception $e){
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
				
			echo json_encode($json);
		}
	}

	/**
	 * Método responsável por chamar a tela inicial do cadastro
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function telaCadastrar(){
		try {
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Cadastrar Produto");
	
			array_push($this->js, 'plugins/select2/select2.min', 'plugins/jquery-mask/jquery.mask.min', 'plugins/formValidation/formValidation', 'plugins/jquery-bootstrap-touchspin/jquery-bootstrap-touchspin', 'plugins/jquery-maskMoney/jquery.maskMoney', 'plugins/framework/bootstrap', 'admin/produto/cadastrar_produto');
			array_push($this->css, 'plugins/select2/select2', 'plugins/formValidation/formValidation', 'plugins/jquery-bootstrap-touchspin/jquery-bootstrap-touchspin');
			
			$listaMarca = $this->marca->listarMarcaAtivas();
			
			$html = '<option></option>';
			
			foreach ($listaMarca as $row){
					
				$html .= '<option value="'.$row->idMarca.'">'.$row->descricao.'</option>';
			}
			
			$data = null;
			$data["comboMarca"] = $html;
				
			$this->load->view('admin/produto/cadastrar_produto', $data);

		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}

	/**
	 * Método responsável por chamar a tela inicial do alterar
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function telaAlterar(){
		try {
			
			$this->session->set_userdata('idBancoTela', trim($this->input->get("id")));
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Alterar Produto");
				
			array_push($this->js, 'plugins/select2/select2.min', 'plugins/jquery-mask/jquery.mask.min', 'plugins/formValidation/formValidation', 'plugins/jquery-bootstrap-touchspin/jquery-bootstrap-touchspin', 'plugins/jquery-maskMoney/jquery.maskMoney', 'plugins/framework/bootstrap', 'admin/produto/alterar_produto');
			array_push($this->css, 'plugins/select2/select2', 'plugins/formValidation/formValidation', 'plugins/jquery-bootstrap-touchspin/jquery-bootstrap-touchspin');
			
			$id = decrypt(trim($this->input->get("id")));
				
			$produto = $this->produto->obter($id);
			$histProduto = $this->histProduto->obterHistProdutoAtivo($id);
			
			$data = null;
			$data['descricao'] = $produto->descricao;
			$data['valor'] = formataDBDinheiroTela($histProduto->valor);
			$data['quantidade'] = $produto->quantidade;
			$data['minQuantidade'] = $produto->minQuantidade;
			$data['codigoBarras'] = $produto->codigoBarras;
			$data['observacao'] = $produto->observacao;
			
			$listaMarca = $this->marca->listarMarcaAtivas();
				
			$html = '<option></option>';
				
			foreach ($listaMarca as $row){
				
				$selected = ((int)$row->idMarca === (int)$produto->idMarca) ? 'selected="selected"' : "";
					
				$html .= '<option '.$selected.' value="'.$row->idMarca.'">'.$row->descricao.'</option>';
			}
				
			$data["comboMarca"] = $html;
			
			$this->load->view('admin/produto/alterar_produto', $data);

		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}

	/**
	 * Método responsável por chamar a tela inicial do exibir
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function telaExibir(){
		try {
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			$this->caminhoPao = $this->menu_lib->caminhoPao($this->classe, null, "Exibir Serviço");
				
			array_push($this->js, 'plugins/dataTables/jquery.dataTables', 'plugins/dataTables/dataTables.bootstrap', 'plugins/dataTables/dataTables.responsive','admin/produto/exibir_produto');
			array_push($this->css, 'plugins/dataTables/dataTables.bootstrap', 'plugins/dataTables/dataTables.responsive');
			
			$id = decrypt(trim($this->input->get("id")));
				
			$produto = $this->produto->obter($id);
			$listaHistProduto = $this->histProduto->listarHistProduto($id);
			
			$data = null;
			$data['descricao'] = $produto->descricao;
			$data['marca'] = $produto->descMarca;
			$data['quantidade'] = $produto->quantidade;
			$data['minQuantidade'] = $produto->minQuantidade;
			$data['codigoBarras'] = $produto->codigoBarras;
			$data['observacao'] = $produto->observacao;
			$data['dtCadastro'] = mostraData($produto->dtCadastro);
			$data['dtFim'] = mostraData($produto->dtVigenciaFim);
			
			$html = '';
				
			if (!empty($listaHistProduto)){
					
				$html .= '	<table class="table table-bordered table-striped table-hover table-heading table-datatable" id="tabela_resultado">
								<thead class="head-table">
									<tr>
										<th class="text-center" >Valor</th>
										<th class="text-center" >Data Início Vigência</th>
										<th class="text-center" >Data Fim Vigência</th>
								    </tr>
								</thead>
								<tbody>';
					
				foreach ($listaHistProduto as $row){
					
					$dataFim = mostraData($row->dtVigenciaFim) === null ? '-' : mostraData($row->dtVigenciaFim);
						
					$html .= '<tr>
								<td class="text-center">'.formataDBDinheiroTela($row->valor).'</td>
								<td class="text-center">'.mostraData($row->dtVigenciaIni).'</td>
								<td class="text-center">'.$dataFim.'</td>';
					$html .='</tr>';
				}
					
				$html .=    '</tbody>
						  </table>';
					
			}
				
			$data['tabela'] = $html;
			
			$this->load->view('admin/produto/exibir_produto', $data);

		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}

	/**
	 * Método responsável por salvar o registro
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function salvar(){

		try {
				
			$this->layout = "";
			
			$this->util_lib->validaPermissaoRegistro("telaCadastrar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
				
			//Pegando dados do form
			$descricao = trim($this->input->post('descricao'));
			$idMarca = trim($this->input->post('marca'));
			$valor = formataDinheiroDB(trim($this->input->post('valor')));
			$quantidade = trim($this->input->post('quantidade'));
			$quantidadeMinima = trim($this->input->post('quantidadeMinima'));
			$codBarras = trim($this->input->post('codBarras'));
			$observacao = trim($this->input->post('observacao'));
			
			$idUsuario = decrypt(trim($this->session->userdata('idUsuario')));
			
			$produto = null;			
			$produto['descricao'] = $descricao;
			$produto['idMarca'] = $idMarca;
			$produto['quantidade'] = $quantidade;
			$produto['minQuantidade'] = $quantidadeMinima;
			$produto['codigoBarras'] = $codBarras;
			$produto['observacao'] = $observacao;
			$produto['idUsuarioCadastro'] = $idUsuario;
			$produto['dtCadastro'] = date("Y-m-d H:i:s");
			$produto['idUsuarioUltimaAlteracao'] = $idUsuario;
			$produto['dtUltimaAlteracao'] = date("Y-m-d H:i:s");
			$produto['dtVigenciaIni'] = date("Y-m-d H:i:s");
			$produto['dtVigenciaFim'] = null;
			
			if (empty($valor) || $valor == 0 || $valor == 0.0){
				throw new Exception("Valor deve ser informado!");
			}
			
			//Iniciando transação
			$this->db->trans_begin();
			
			$listaProduto = $this->produto->validarDescricaoJaCadastrada($descricao, null);
			
			if (!empty($listaProduto)){
				throw new Exception("Já existe um produto cadastrado com esse nome!");
			}
			
			$idProduto = $this->produto->inserir($produto);
			
			if (!empty($idProduto) && $idProduto != false){
				$histProduto = null;
				$histProduto['idProduto'] = $idProduto;
				$histProduto['valor'] = $valor;
				$histProduto['idUsuarioCadastro'] = $idUsuario;
				$histProduto['dtCadastro'] = date("Y-m-d H:i:s");
				$histProduto['dtVigenciaIni'] = date("Y-m-d H:i:s");
				$histProduto['dtVigenciaFim'] = null;
				
				$this->histProduto->inserir($histProduto);
				
				$retornoJson = true;
				$tipoMensagem = "alert-success";
				$mensagem = "Produto cadastrado com sucesso!";
			}
			
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
			
			$json = null;
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);
				
		} catch (Exception $e) {
			$this->db->trans_rollback();
				
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
				
			echo json_encode($json);
		}

	}

	/**
	 * Método responsável por alterar o registro
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function alterar(){

		try {

			$this->layout = "";
			
			$this->util_lib->validaPermissaoRegistro("telaAlterar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
	
			//Pegando dados do form
			$id = decrypt(trim($this->session->userdata('idBancoTela')));
			$descricao = trim($this->input->post('descricao'));
			$idMarca = trim($this->input->post('marca'));
			$valor = formataDinheiroDB(trim($this->input->post('valor')));
			$quantidade = trim($this->input->post('quantidade'));
			$quantidadeMinima = trim($this->input->post('quantidadeMinima'));
			$codBarras = trim($this->input->post('codBarras'));
			$observacao = trim($this->input->post('observacao'));
			
			$idUsuario = decrypt(trim($this->session->userdata('idUsuario')));
			
			$produto = null;			
			$produto['descricao'] = $descricao;
			$produto['idMarca'] = $idMarca;
			$produto['quantidade'] = $quantidade;
			$produto['minQuantidade'] = $quantidadeMinima;
			$produto['codigoBarras'] = $codBarras;
			$produto['observacao'] = $observacao;
			$produto['idUsuarioUltimaAlteracao'] = $idUsuario;
			$produto['dtUltimaAlteracao'] = date("Y-m-d H:i:s");
			
			if (empty($valor) || $valor == 0 || $valor == 0.0){
				throw new Exception("Valor deve ser informado!");
			}
			
			//Iniciando transação
			$this->db->trans_begin();
			
			//Validar se já exite um serviço com o mesmo nome
			$listaProduto = $this->produto->validarDescricaoJaCadastrada($descricao, $id);
			
			if (!empty($listaProduto)){
				throw new Exception("Já existe um produto cadastrado com esse nome!");
			}
			
			if($this->produto->alterar($produto, $id)){
				
				$histProdutoBanco = $this->histProduto->obterHistProdutoAtivo($id);
				
				if (empty($histProdutoBanco)){
					
					$histProduto = null;
					$histProduto['idProduto'] = $id;
					$histProduto['valor'] = $valor;
					$histProduto['idUsuarioCadastro'] = $idUsuario;
					$histProduto['dtCadastro'] = date("Y-m-d H:i:s");
					$histProduto['dtVigenciaIni'] = date("Y-m-d H:i:s");
					$histProduto['dtVigenciaFim'] = null;
					
					//Salvando 
					$this->histProduto->inserir($histProduto);
					
				}else{
					
					if ((float)$histProdutoBanco->valor !== (float)$valor){
						
						$histProdutoBanco->dtVigenciaFim = date("Y-m-d H:i:s");
						
						//Inativando o registro antigo
						if($this->histProduto->alterar($histProdutoBanco, $histProdutoBanco->idHistProduto)){
							$histProduto = null;
							$histProduto['idProduto'] = $id;
							$histProduto['valor'] = $valor;
							$histProduto['idUsuarioCadastro'] = $idUsuario;
							$histProduto['dtCadastro'] = date("Y-m-d H:i:s");
							$histProduto['dtVigenciaIni'] = date("Y-m-d H:i:s");
							$histProduto['dtVigenciaFim'] = null;
								
							//Salvando
							$this->histProduto->inserir($histProduto);
						}
					}
				}
				
				$retornoJson = true;
				$tipoMensagem = "alert-success";
				$mensagem = "Produto cadastrado com sucesso!";
			}
				
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
				
			$json = null;
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);

		} catch (Exception $e) {
			$this->db->trans_rollback();
				
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
				
			echo json_encode($json);
		}

	}

	/**
	 * Método responsável por reativar o registro
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function reativar(){

		try {

			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$this->util_lib->validaPermissaoRegistro("reativar", $this->classe);
			
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
	
			//Pegando dados do form
			$id = decrypt(trim($this->input->post("idBanco")));
	
			//Usuário Logado
			$idUsuario = decrypt(trim($this->session->userdata('idUsuario')));
	
			$produto = null;
			$produto['idUsuarioUltimaAlteracao'] = $idUsuario;
			$produto['dtUltimaAlteracao'] = date("Y-m-d H:i:s");
			$produto['dtVigenciaFim'] = null;
	
			//Iniciando transação
			$this->db->trans_begin();
	
			if ($this->produto->alterar($produto, $id)){
				
				$histProdutoBanco = $this->histProduto->obterUltimoHistProduto($id);
				
				$histproduto = null;
				$histproduto['idproduto'] = $id;
				$histproduto['valor'] = $histProdutoBanco->valor;
				$histproduto['idUsuarioCadastro'] = $idUsuario;
				$histproduto['dtCadastro'] = date("Y-m-d H:i:s");
				$histproduto['dtVigenciaIni'] = date("Y-m-d H:i:s");
				$histproduto['dtVigenciaFim'] = null;
				
				//Criando um novo valor para a reativação
				$this->histProduto->inserir($histproduto);
				
				$retornoJson = true;
				$tipoMensagem = "alert-success";
				$mensagem = "Produto reativado com sucesso!";
			}
	
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
	
			$json = null;
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);

		} catch (Exception $e) {
			$this->db->trans_rollback();
				
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
				
			echo json_encode($json);
		}

	}

	/**
	 * Método responsável por inativar o registro
	 * @author Rodrigo Valt <rodrigo@valtsolucoesti.com.br>
	 * @author Valt Soluções em TI
	 * @since 28/07/2015 16:48:23
	 */
	public function inativar(){

		try {

			$this->layout = "";
			
			//Limpando id da sessão
			$this->session->unset_userdata('idBancoTela');
			
			$this->util_lib->validaPermissaoRegistro("inativar", $this->classe);
				
			$retornoJson = false;
			$tipoMensagem = "";
			$mensagem = "";
	
			//Pegando dados do form
			$id = decrypt(trim($this->input->post("idBanco")));
	
			//Usuário Logado
			$idUsuario = decrypt(trim($this->session->userdata('idUsuario')));
			
			$produto = null;
			$produto['idUsuarioUltimaAlteracao'] = $idUsuario;
			$produto['dtUltimaAlteracao'] = date("Y-m-d H:i:s");
			$produto['dtVigenciaFim'] = date("Y-m-d H:i:s");
	
			//Iniciando transação
			$this->db->trans_begin();
	
			if ($this->produto->alterar($produto, $id)){
				
				//Obter o hist produto ativo
				$histProdutoBanco = $this->histProduto->obterHistProdutoAtivo($id);
				
				if (!empty($histProdutoBanco)){
					$histProdutoBanco->dtVigenciaFim = date("Y-m-d H:i:s");
					
					//Inativando o registro antigo
					if($this->histProduto->alterar($histProdutoBanco, $histProdutoBanco->idHistProduto)){
						$retornoJson = true;
						$tipoMensagem = "alert-success";
						$mensagem = "Produto inativado com sucesso!";
					}
				}
				
			}
	
			if ($retornoJson){
				$this->db->trans_commit();
			}else{
				$this->db->trans_rollback();
			}
	
			$json = null;
			$json['sucesso'] = $retornoJson;
			$json['tipoMensagem'] = $tipoMensagem;
			$json['mensagem'] = $mensagem;
			
			echo json_encode($json);

		} catch (Exception $e) {
			$this->db->trans_rollback();
				
			$json['sucesso'] = false;
			$json['tipoMensagem'] = "alert-danger";
			$json['mensagem'] = $e->getMessage();
				
			echo json_encode($json);
		}

	}

	public function validaDescricaoProduto(){
		try{
	
			$this->layout = "";
	
			$retornoJson = false;
	
			$descricao = trim($this->input->post('descricao'));
			$idproduto = decrypt(trim($this->session->userdata('idBancoTela')));
	
			$produto = $this->produto->validarDescricaoJaCadastrada($descricao, $idproduto);
	
			if (!empty($produto)){
				$retornoJson = false;
			}else{
				$retornoJson = true;
			}
	
			$json = null;
			$json['valid'] = $retornoJson;
	
			echo json_encode($json);
	
		}catch (Exception $e){
			echo ($e->getMessage());
		}
	}
}
